const hello = (name: string) => {
  console.log(`hello, ${name}`)
}
hello('jack')

// 数字枚举
const enum PostStatus {
  Draft = 0, // 如果给第一成员指定值，后面都以第一个为基础累加
  Unpublished, // 如果不指定值，则默认从0 开始累加
  published
}

// 字符串枚举，需要给每个成员初始化值
enum PostStatus1 {
  Draft1 = 'string',
  Unpublished1 = 'string1',
  published1 = 'string2'
}
const post = {
  status: PostStatus.Draft
}


interface Post {
	title: string // 可以使用分号分割
  content: string
  subtitle?: string // 可选成员，相当于给 subtitle 添加 string | undefined 类型
  readonly summary: string, // 只读成员
}
const hello1: Post = {
  title: 'Hello, js 成员',
  content: '内容',
  summary: '摘要'
}
// hello1.summary = '2'

// 无法指定具体成员名称时
/* 注意这里不能直接写 Cache，因为typescript 全局有一个Cache;
 * 如果一定要写，必须在文件中加入 export {}
 * 或者改名为 MyCache
 */
interface myCache {
  [prop: string]: string
}
const cache: myCache = {}
cache.foo = 'foo'
cache.chicken = 'null'